Skip to content

feat(helmExecute): generate SBOM on the publish path and build traceability - #5856

Open
fabienfritz wants to merge 1 commit into
masterfrom
ffritz/helmBuild-add-sbom
Open

feat(helmExecute): generate SBOM on the publish path and build traceability#5856
fabienfritz wants to merge 1 commit into
masterfrom
ffritz/helmBuild-add-sbom

Conversation

@fabienfritz

@fabienfritz fabienfritz commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Add CycloneDX SBOM Generation and Build Traceability to helmExecute Step

Description

This PR adds CycloneDX 1.4 SBOM generation to the helmExecute step for SLC-41 compliance, and populates buildSettingsInfo in the common pipeline environment for SLC-29 build traceability.

SBOM Generation (SLC-41)

When createBOM: true is set and the chart is published, helmExecute now emits:

  • bom-helm.xml: A chart-level SBOM (built with cyclonedx-go) whose root component carries a pkg:helm PURL. Sub-chart dependency versions are resolved using Chart.lock (winning over Chart.yaml ranges), and referenced images are included as container components.
  • bom-docker-<N>.xml: Per-image SBOMs produced by Syft. A clean, registry-free pkg:docker PURL is injected into the root component to satisfy CycloneDX validation (workaround for anchore/syft#1408).

Container images are discovered via helm template and fall back to the containerImageNameTags CPE list when templating yields no images. SBOM generation is best-effort — failures are logged but never fail the step.

Build Traceability (SLC-29)

buildSettingsInfo is now populated into commonPipelineEnvironment.custom.buildSettingsInfo, recording helm build flags for compliance processes.

New Parameters

Parameter Description
createBOM Enables CycloneDX SBOM generation
syftDownloadUrl Download URL for the Syft binary
containerImageNameTags Fallback image list from upstream kanikoExecute
buildSettingsInfo Build settings traceability info

SBOM Reports Output

SBOM files matching **/bom-*.xml are now registered as sbom reports and can be persisted to GCS.

Tests

  • Unit tests covering image discovery, chart/container SBOM assembly, PURL injection, and buildSettingsInfo population
  • Integration test (TestHelmIntegrationPublishWithSBOM) that publishes to a WebDAV sink and validates the generated bom-helm.xml against CycloneDX 1.4 schema
  • GHA pipelines : test of different use cases using GHA pipeline. SBOM file validation done.
  • Jenkins pipeline: execution done with case helm publish=true.
  • ADO pipeline: execution done with case helm publish=true.

Checklist

  • Tests

  • Documentation

  • Inner source library needs updating

  • 🔄 Regenerate and Update Summary

PR Bot Information

Version: 1.29.6

  • Correlation ID: 76bc11a0-8b74-11f1-93c3-d9c03e937050
  • Event Trigger: issue_comment.edited

@fabienfritz

Copy link
Copy Markdown
Contributor Author

/it-go

1 similar comment
@fabienfritz

Copy link
Copy Markdown
Contributor Author

/it-go

@fabienfritz
fabienfritz force-pushed the ffritz/helmBuild-add-sbom branch from e95849e to ec39ed3 Compare July 30, 2026 07:45
@fabienfritz

Copy link
Copy Markdown
Contributor Author

/it-go

@fabienfritz
fabienfritz marked this pull request as ready for review July 30, 2026 07:58
@fabienfritz
fabienfritz requested review from a team as code owners July 30, 2026 07:58

@fskhiri fskhiri left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No blocker, to findings worth look at it. Let me know what do you think ?

Comment thread cmd/helmBuild.go
Comment thread pkg/kubernetes/helm.go
@fabienfritz

Copy link
Copy Markdown
Contributor Author

/it-go

@fabienfritz
fabienfritz force-pushed the ffritz/helmBuild-add-sbom branch from d0f5815 to 2a4d98d Compare August 5, 2026 13:25
@fabienfritz

Copy link
Copy Markdown
Contributor Author

/it-go

@fabienfritz
fabienfritz requested a review from fskhiri August 5, 2026 13:27
@fabienfritz

Copy link
Copy Markdown
Contributor Author

/it-go

@fabienfritz
fabienfritz force-pushed the ffritz/helmBuild-add-sbom branch from f24ba99 to 5b1558a Compare August 7, 2026 07:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants